#!/bin/bash

# 1. 接受一个 -h 选项，该选项带一个参数
# 2. 接受一个 -p 选项，该选项带一个参数
# 3. 接受一个 -x 选项，该选项不带参数
# 4. 可选地接受一个 -y 选项，该选项不带参数
# 5. 把-h 的参数，-p 的参数打印出来；
#    如果不提供-x参数就输出错误信息；
#    如果提供了-y参数，就打出相应的信息。

# cmd -h 192.168.0.1 -p 3306 -x -y
# x: feature_x
# y: feature_y

host=
port=
feature_x=0
feature_y=0

while test $# -ne 0
do
    case "$1" in
        -h)
            host=$2
            shift 2
            ;;
        -p)
            port=$2
            shift 2
            ;;
        -x)
            feature_x=1
            shift
            ;;
        -y)
            feature_y=1
            shift
            ;;
        *)
            echo "unrecognized option: $1" >&1
            exit 1
            ;;
    esac
done

# 5. 把-h 的参数，-p 的参数打印出来；
#    如果不提供-x参数就输出错误信息；
#    如果提供了-y参数，就打出相应的信息。
echo "host: $host"
echo "port: $port"
test "$feature_x" -eq 0 && echo "-x is required" && exit 1
test "$feature_y" -ne 0 && echo "-y is provided"
